﻿using System.Collections.Generic;
using yiCommerce.Core.Domain.Orders;
using yiCommerce.Core.Domain.Payments;

namespace yiCommerce.Service.Payments
{
    public interface IPaymentService
    {
        ProcessPaymentResult ProcessPayment(ProcessPaymentRequest processPaymentRequest);
        IList<IPaymentMethod> LoadActivePaymentMethods();
        IPaymentMethod LoadPaymentMethodBySystemName(string paymentmethod);
        void PostProcessPayment(PostProcessPaymentRequest postProcessPaymentRequest);
        bool CanRePostProcessPayment(Order order);
    }
}